package com.tanhua.dubbo.api;

import com.tanhua.dubbo.pojo.UserLike;
import com.tanhua.dubbo.vo.PageInfo;

import java.util.List;

/**
 * @author Don
 */
public interface UserLikeApi {

    /**
     * 喜欢
     *
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean likeUser(Long userId, Long likeUserId);

    /**
     * 取消喜欢
     *
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean notLikeUser(Long userId, Long likeUserId);


    /**
     * 是否相互喜欢
     *
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean isMutualLike(Long userId, Long likeUserId);

    /**
     * 是否是喜欢
     *
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean isLike(Long userId, Long likeUserId);


    /**
     * 查询喜欢列表
     *
     * @param userId
     * @return
     */
    List<Long> queryLikeList(Long userId);

    /**
     * 查询不喜欢列表
     *
     * @param userId
     * @return
     */
    List<Long> queryNotLikeList(Long userId);


    /**
     * 相互喜欢数
     *
     * @param userId
     * @return
     */
    Long queryMutualLoveCount(Long userId);


    /**
     * 喜欢数
     *
     * @param userId
     * @return
     */
    Long queryLoveCount(Long userId);


    /**
     * 粉丝数
     *
     * @param userId
     * @return
     */
    Long queryFanCount(Long userId);

    /**
     * 查询相互喜欢集合
     *
     * @param page
     * @param pageSize
     * @param userId
     * @return
     */
    PageInfo<UserLike> queryMutualLikeList(Integer page, Integer pageSize, Long userId);

    /**
     * 查询喜欢集合
     *
     * @param page
     * @param pageSize
     * @param userId
     * @return
     */
    PageInfo<UserLike> queryLoveList(Integer page, Integer pageSize, Long userId);

    /**
     *  查询粉丝集合
     *
     * @param page
     * @param pageSize
     * @param userId
     * @return
     */
    PageInfo<UserLike> queryFanList(Integer page, Integer pageSize, Long userId);


}